package cn.minhx.trigger.http;

import cn.minhx.api.IDCCService;
import cn.minhx.api.response.Response;
import cn.minhx.types.enums.ResponseCode;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.redisson.api.RTopic;
import org.springframework.web.bind.annotation.*;

/**
 * 动态配置管理
 *
 * @author min
 */
@Slf4j
@RestController()
@CrossOrigin("*")
@RequestMapping("/api/v1/gbm/dcc/")
public class DCCController implements IDCCService {

	@Resource
	private RTopic dccTopic;

	/** 动态值变更 */
	@RequestMapping(value = "update_config", method = RequestMethod.GET)
	@Override
	public Response<Boolean> updateConfig(@RequestParam String key, @RequestParam String value) {
		try {
			log.info("DCC 动态配置值变更 key:{} value:{}", key, value);
			dccTopic.publish(key + "," + value);
			return Response.<Boolean>builder().code(ResponseCode.SUCCESS.getCode()).info(ResponseCode.SUCCESS.getInfo())
					.build();
		} catch (Exception e) {
			log.error("DCC 动态配置值变更失败 key:{} value:{}", key, value, e);
			return Response.<Boolean>builder().code(ResponseCode.UN_ERROR.getCode())
					.info(ResponseCode.UN_ERROR.getInfo()).build();
		}
	}
}
